package ast.statement.upsert

import ast.expr.SqlExpr
import ast.statement.SqlStatement

/**
 * sql语法树：插入或更新语句
 * @property table SqlExpr? 操作的表
 * @property columns MutableList<SqlExpr> 字段列表
 * @property value MutableList<SqlExpr> 值列表
 * @property primaryColumns MutableList<SqlExpr> 主键列表
 * @property updateColumns MutableList<SqlExpr> 主键冲突后更新的字段列表
 */
data class SqlUpsert(
    var table: SqlExpr? = null,
    val columns: MutableList<SqlExpr> = mutableListOf(),
    val value: MutableList<SqlExpr> = mutableListOf(),
    val primaryColumns: MutableList<SqlExpr> = mutableListOf(),
    val updateColumns: MutableList<SqlExpr> = mutableListOf()
) : SqlStatement